home *** CD-ROM | disk | FTP | other *** search
/ Freelog 125 / Freelog_MarsAvril2015_No125.iso / Musique / Quod Libet / quodlibet-3.3.0-installer.exe / bin / repr.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2014-12-31  |  5KB  |  153 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.7)
  3.  
  4. '''Redo the builtin repr() (representation) but with limits on most sizes.'''
  5. __all__ = [
  6.     'Repr',
  7.     'repr']
  8. import __builtin__
  9. from itertools import islice
  10.  
  11. class Repr:
  12.     
  13.     def __init__(self):
  14.         self.maxlevel = 6
  15.         self.maxtuple = 6
  16.         self.maxlist = 6
  17.         self.maxarray = 5
  18.         self.maxdict = 4
  19.         self.maxset = 6
  20.         self.maxfrozenset = 6
  21.         self.maxdeque = 6
  22.         self.maxstring = 30
  23.         self.maxlong = 40
  24.         self.maxother = 20
  25.  
  26.     
  27.     def repr(self, x):
  28.         return self.repr1(x, self.maxlevel)
  29.  
  30.     
  31.     def repr1(self, x, level):
  32.         typename = type(x).__name__
  33.         if ' ' in typename:
  34.             parts = typename.split()
  35.             typename = '_'.join(parts)
  36.         if hasattr(self, 'repr_' + typename):
  37.             return getattr(self, 'repr_' + typename)(x, level)
  38.         s = None.repr(x)
  39.         if len(s) > self.maxother:
  40.             i = max(0, (self.maxother - 3) // 2)
  41.             j = max(0, self.maxother - 3 - i)
  42.             s = s[:i] + '...' + s[len(s) - j:]
  43.         return s
  44.  
  45.     
  46.     def _repr_iterable(self, x, level, left, right, maxiter, trail = ''):
  47.         n = len(x)
  48.         if level <= 0 and n:
  49.             s = '...'
  50.         else:
  51.             newlevel = level - 1
  52.             repr1 = self.repr1
  53.             pieces = [ repr1(elem, newlevel) for elem in islice(x, maxiter) ]
  54.             if n > maxiter:
  55.                 pieces.append('...')
  56.             s = ', '.join(pieces)
  57.             if n == 1 and trail:
  58.                 right = trail + right
  59.         return '%s%s%s' % (left, s, right)
  60.  
  61.     
  62.     def repr_tuple(self, x, level):
  63.         return self._repr_iterable(x, level, '(', ')', self.maxtuple, ',')
  64.  
  65.     
  66.     def repr_list(self, x, level):
  67.         return self._repr_iterable(x, level, '[', ']', self.maxlist)
  68.  
  69.     
  70.     def repr_array(self, x, level):
  71.         header = "array('%s', [" % x.typecode
  72.         return self._repr_iterable(x, level, header, '])', self.maxarray)
  73.  
  74.     
  75.     def repr_set(self, x, level):
  76.         x = _possibly_sorted(x)
  77.         return self._repr_iterable(x, level, 'set([', '])', self.maxset)
  78.  
  79.     
  80.     def repr_frozenset(self, x, level):
  81.         x = _possibly_sorted(x)
  82.         return self._repr_iterable(x, level, 'frozenset([', '])', self.maxfrozenset)
  83.  
  84.     
  85.     def repr_deque(self, x, level):
  86.         return self._repr_iterable(x, level, 'deque([', '])', self.maxdeque)
  87.  
  88.     
  89.     def repr_dict(self, x, level):
  90.         n = len(x)
  91.         if n == 0:
  92.             return '{}'
  93.         if None <= 0:
  94.             return '{...}'
  95.         newlevel = None - 1
  96.         repr1 = self.repr1
  97.         pieces = []
  98.         for key in islice(_possibly_sorted(x), self.maxdict):
  99.             keyrepr = repr1(key, newlevel)
  100.             valrepr = repr1(x[key], newlevel)
  101.             pieces.append('%s: %s' % (keyrepr, valrepr))
  102.         
  103.         if n > self.maxdict:
  104.             pieces.append('...')
  105.         s = ', '.join(pieces)
  106.         return '{%s}' % (s,)
  107.  
  108.     
  109.     def repr_str(self, x, level):
  110.         s = __builtin__.repr(x[:self.maxstring])
  111.         if len(s) > self.maxstring:
  112.             i = max(0, (self.maxstring - 3) // 2)
  113.             j = max(0, self.maxstring - 3 - i)
  114.             s = __builtin__.repr(x[:i] + x[len(x) - j:])
  115.             s = s[:i] + '...' + s[len(s) - j:]
  116.         return s
  117.  
  118.     
  119.     def repr_long(self, x, level):
  120.         s = __builtin__.repr(x)
  121.         if len(s) > self.maxlong:
  122.             i = max(0, (self.maxlong - 3) // 2)
  123.             j = max(0, self.maxlong - 3 - i)
  124.             s = s[:i] + '...' + s[len(s) - j:]
  125.         return s
  126.  
  127.     
  128.     def repr_instance(self, x, level):
  129.         
  130.         try:
  131.             s = __builtin__.repr(x)
  132.         except Exception:
  133.             return '<%s instance at %x>' % (x.__class__.__name__, id(x))
  134.  
  135.         if len(s) > self.maxstring:
  136.             i = max(0, (self.maxstring - 3) // 2)
  137.             j = max(0, self.maxstring - 3 - i)
  138.             s = s[:i] + '...' + s[len(s) - j:]
  139.         return s
  140.  
  141.  
  142.  
  143. def _possibly_sorted(x):
  144.     
  145.     try:
  146.         return sorted(x)
  147.     except Exception:
  148.         return list(x)
  149.  
  150.  
  151. aRepr = Repr()
  152. repr = aRepr.repr
  153.